package com.wk.lib_base.view

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ImmersionBar
import com.wk.lib_base.constant.ImmersionType

abstract class BaseActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        customContentView()
        customImmersion()
        initViews()
    }

    open fun customContentView() {
        setContentView(getLayoutId())
    }


    /*------------------下方子类可以实现的方法------------------------*/

    abstract fun initViews()

    /**
     * 设置页面的沉浸方式
     * 内置的两种不满足的话，可以重写，自己定义
     */
    open fun customImmersion() {
        when (getImmersionType()) {
            ImmersionType.IMMERSION_FULL -> ImmersionBar.with(this)
                .keyboardEnable(true)
                .supportActionBar(false)
                .autoStatusBarDarkModeEnable(true)
                .init()
            ImmersionType.IMMERSION_WITH_ACTION->ImmersionBar.with(this)
                .keyboardEnable(true)
                .supportActionBar(true)
                .autoStatusBarDarkModeEnable(true)
                .init()
            else->{}
        }
    }
    abstract fun getLayoutId():Int
    open fun getImmersionType() : ImmersionType = ImmersionType.IMMERSION_NO
}